using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Data.SqlClient;
using Entities;
/// <summary>
/// Summary description for DoiTuongGhiDanhDAL
/// </summary>
namespace DataAccess
{

    public class DoiTuongGhiDanhDAL : BaseDAL
    {
        #region Private Variables

        #endregion

        #region Public Constructors
        public DoiTuongGhiDanhDAL()
        {
            //
            // TODO: Add constructor logic here
            //

        }
        #endregion



        #region Public Methods
        public int Insert(DoiTuongGhiDanh objDoiTuongGhiDanh)
        {

            SqlCommand Sqlcomm = new SqlCommand();
            Sqlcomm.CommandType = CommandType.StoredProcedure;
            Sqlcomm.CommandText = "DoiTuongGhiDanh_Insert";
            SqlParameter Sqlparam;

            Sqlparam = new SqlParameter("@MaDoiTuong", SqlDbType.NChar);
            Sqlparam.Value = objDoiTuongGhiDanh.MaDoiTuong;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@TenDoiTuong", SqlDbType.NVarChar);
            Sqlparam.Value = objDoiTuongGhiDanh.TenDoiTuong;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@QuocTich", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.QuocTich;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@NgaySinh", SqlDbType.DateTime);
            Sqlparam.Value = objDoiTuongGhiDanh.NgaySinh;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@DiaChiThuongTru", SqlDbType.NVarChar);
            Sqlparam.Value = objDoiTuongGhiDanh.DiaChiThuongTru;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@CMND", SqlDbType.NVarChar);
            Sqlparam.Value = objDoiTuongGhiDanh.CMND;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@DiaChiCuTru", SqlDbType.NVarChar);
            Sqlparam.Value = objDoiTuongGhiDanh.DiaChiCuTru;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@GiayPhepLaiXeDaCo", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.GiayPhepLaiXeDaCo;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@ThongTinTaiKhoan", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.ThongTinTaiKhoan;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@ID", SqlDbType.Int);
            Sqlparam.Direction = ParameterDirection.ReturnValue;
            Sqlcomm.Parameters.Add(Sqlparam);


            int result = base.ExecuteNoneQuery(Sqlcomm);

            if (!Convert.IsDBNull(Sqlcomm.Parameters["@ID"]))
                result = Convert.ToInt32(Sqlcomm.Parameters["@ID"].Value);

            return result;
        }

        public int Update(DoiTuongGhiDanh objDoiTuongGhiDanh)
        {

            SqlCommand Sqlcomm = new SqlCommand();
            Sqlcomm.CommandType = CommandType.StoredProcedure;
            Sqlcomm.CommandText = "DoiTuongGhiDanh_UpdateByPK";
            SqlParameter Sqlparam;

            Sqlparam = new SqlParameter("@Khoa", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.Khoa;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@MaDoiTuong", SqlDbType.NChar);
            Sqlparam.Value = objDoiTuongGhiDanh.MaDoiTuong;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@TenDoiTuong", SqlDbType.NVarChar);
            Sqlparam.Value = objDoiTuongGhiDanh.TenDoiTuong;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@QuocTich", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.QuocTich;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@CMND", SqlDbType.NVarChar);
            Sqlparam.Value = objDoiTuongGhiDanh.CMND;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@NgaySinh", SqlDbType.DateTime);
            Sqlparam.Value = objDoiTuongGhiDanh.NgaySinh;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@DiaChiThuongTru", SqlDbType.NVarChar);
            Sqlparam.Value = objDoiTuongGhiDanh.DiaChiThuongTru;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@DiaChiCuTru", SqlDbType.NVarChar);
            Sqlparam.Value = objDoiTuongGhiDanh.DiaChiCuTru;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@GiayPhepLaiXeDaCo", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.GiayPhepLaiXeDaCo;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@ThongTinTaiKhoan", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.ThongTinTaiKhoan;
            Sqlcomm.Parameters.Add(Sqlparam);

            Sqlparam = new SqlParameter("@ErrorCode", SqlDbType.Int);
            Sqlparam.Direction = ParameterDirection.ReturnValue;
            Sqlcomm.Parameters.Add(Sqlparam);

            int result = base.ExecuteNoneQuery(Sqlcomm);

            if (!Convert.IsDBNull(Sqlcomm.Parameters["@ErrorCode"]))
                result = Convert.ToInt32(Sqlcomm.Parameters["@ErrorCode"].Value);

            return result;


        }

        public int Delete(DoiTuongGhiDanh objDoiTuongGhiDanh)
        {

            SqlCommand Sqlcomm = new SqlCommand();
            Sqlcomm.CommandType = CommandType.StoredProcedure;
            Sqlcomm.CommandText = "DoiTuongGhiDanh_DeleteByPK";
            SqlParameter Sqlparam;


            Sqlparam = new SqlParameter("@Khoa", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.Khoa;
            Sqlcomm.Parameters.Add(Sqlparam);



            int result = base.ExecuteNoneQuery(Sqlcomm);
            return result;
        }

        public int DeleteAll()
        {

            SqlCommand Sqlcomm = new SqlCommand();
            Sqlcomm.CommandType = CommandType.StoredProcedure;
            Sqlcomm.CommandText = "DoiTuongGhiDanh_DeleteAll";

            int result = base.ExecuteNoneQuery(Sqlcomm);
            return result;
        }

        public DoiTuongGhiDanh Select(DoiTuongGhiDanh objDoiTuongGhiDanh)
        {

            SqlCommand Sqlcomm = new SqlCommand();
            Sqlcomm.CommandType = CommandType.StoredProcedure;
            Sqlcomm.CommandText = "DoiTuongGhiDanh_GetByPK";
            SqlParameter Sqlparam;


            Sqlparam = new SqlParameter("@Khoa", SqlDbType.BigInt);
            Sqlparam.Value = objDoiTuongGhiDanh.Khoa;
            Sqlcomm.Parameters.Add(Sqlparam);



            DataSet ds = base.GetDataSet(Sqlcomm);
            DataRow dr = null;
            if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
            {
                dr = ds.Tables[0].Rows[0];
                if (!Convert.IsDBNull(dr["Khoa"]))
                    objDoiTuongGhiDanh.Khoa = Convert.ToInt64(dr["Khoa"]);
                if (!Convert.IsDBNull(dr["MaDoiTuong"]))
                    objDoiTuongGhiDanh.MaDoiTuong = Convert.ToString(dr["MaDoiTuong"]);
                if (!Convert.IsDBNull(dr["TenDoiTuong"]))
                    objDoiTuongGhiDanh.TenDoiTuong = Convert.ToString(dr["TenDoiTuong"]);
                if (!Convert.IsDBNull(dr["QuocTich"]))
                    objDoiTuongGhiDanh.QuocTich = Convert.ToInt64(dr["QuocTich"]);
                if (!Convert.IsDBNull(dr["CMND"]))
                    objDoiTuongGhiDanh.CMND = Convert.ToString(dr["CMND"]);
                if (!Convert.IsDBNull(dr["NgaySinh"]))
                    objDoiTuongGhiDanh.NgaySinh = Convert.ToDateTime(dr["NgaySinh"]);
                if (!Convert.IsDBNull(dr["DiaChiThuongThu"]))
                    objDoiTuongGhiDanh.DiaChiThuongTru = Convert.ToString(dr["DiaChiThuongTru"]);
                if (!Convert.IsDBNull(dr["DiaChiCuTru"]))
                    objDoiTuongGhiDanh.DiaChiCuTru = Convert.ToString(dr["DiaChiCuTru"]);
                if (!Convert.IsDBNull(dr["GiayPhepLaiXeDaCo"]))
                    objDoiTuongGhiDanh.GiayPhepLaiXeDaCo = Convert.ToInt64(dr["GiayPhepLaiXeDaCo"]);
                if (!Convert.IsDBNull(dr["ThongTinTaiKhoan"]))
                    objDoiTuongGhiDanh.ThongTinTaiKhoan = Convert.ToInt64(dr["ThongTinTaiKhoan"]);

            }
            return objDoiTuongGhiDanh;
        }

        public ArrayList SelectAllToArray()
        {

            SqlCommand Sqlcomm = new SqlCommand();
            Sqlcomm.CommandType = CommandType.StoredProcedure;
            Sqlcomm.CommandText = "DoiTuongGhiDanh_GetAll";

            DataSet ds = base.GetDataSet(Sqlcomm);
            DataTable dt = null;
            ArrayList arrDoiTuongGhiDanh = new ArrayList();
            if (ds != null && ds.Tables.Count > 0)
            {
                dt = ds.Tables[0];
                foreach (DataRow dr in dt.Rows)
                {
                    DoiTuongGhiDanh objDoiTuongGhiDanh = new DoiTuongGhiDanh();
                    if (!Convert.IsDBNull(dr["Khoa"]))
                        objDoiTuongGhiDanh.Khoa = Convert.ToInt64(dr["Khoa"]);
                    if (!Convert.IsDBNull(dr["MaDoiTuong"]))
                        objDoiTuongGhiDanh.MaDoiTuong = Convert.ToString(dr["MaDoiTuong"]);
                    if (!Convert.IsDBNull(dr["TenDoiTuong"]))
                        objDoiTuongGhiDanh.TenDoiTuong = Convert.ToString(dr["TenDoiTuong"]);
                    if (!Convert.IsDBNull(dr["QuocTich"]))
                        objDoiTuongGhiDanh.QuocTich = Convert.ToInt64(dr["QuocTich"]);
                    if (!Convert.IsDBNull(dr["CMND"]))
                        objDoiTuongGhiDanh.CMND = Convert.ToString(dr["CMND"]);
                    if (!Convert.IsDBNull(dr["NgaySinh"]))
                        objDoiTuongGhiDanh.NgaySinh = Convert.ToDateTime(dr["NgaySinh"]);
                    if (!Convert.IsDBNull(dr["DiaChiThuongThu"]))
                        objDoiTuongGhiDanh.DiaChiThuongTru = Convert.ToString(dr["DiaChiThuongTru"]);
                    if (!Convert.IsDBNull(dr["DiaChiCuTru"]))
                        objDoiTuongGhiDanh.DiaChiCuTru = Convert.ToString(dr["DiaChiCuTru"]);
                    if (!Convert.IsDBNull(dr["GiayPhepLaiXeDaCo"]))
                        objDoiTuongGhiDanh.GiayPhepLaiXeDaCo = Convert.ToInt64(dr["GiayPhepLaiXeDaCo"]);
                    if (!Convert.IsDBNull(dr["ThongTinTaiKhoan"]))
                        objDoiTuongGhiDanh.ThongTinTaiKhoan = Convert.ToInt64(dr["ThongTinTaiKhoan"]);
                    arrDoiTuongGhiDanh.Add(objDoiTuongGhiDanh);
                }
            }
            return arrDoiTuongGhiDanh;
        }

        public DataTable SelectAll()
        {

            SqlCommand Sqlcomm = new SqlCommand();
            Sqlcomm.CommandType = CommandType.StoredProcedure;
            Sqlcomm.CommandText = "DoiTuongGhiDanh_GetAll";

            DataSet ds = base.GetDataSet(Sqlcomm);
            DataTable dt = null;

            if (ds != null && ds.Tables.Count > 0)
            {
                dt = ds.Tables[0];

            }
            return dt;
        }


        #endregion

    }

}
